[% setvar title The Perl 6 Summary for the week ending 2005-07-19 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 2005-07-19'></a><h1>The Perl 6 Summary for the week ending 2005-07-19</h1>
<p>Welcome to another Perl 6 Summary, brought to you by the words 'displacement'
and 'activity'. So far today I've caught up with everything unread in
NetNewsWire, my Flickr groups, every other mailing list I'm subscribed to and
completed about 5 Sudoku. And now I'm dragging out this introduction and I
don't know why; I enjoy writing these things.</p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<p>Another quiet week on the list. However, you only have to watch the svn commit
log and the other stuff on PlanetSix to know that things are still proceeding
apace. Last time I looked it seemed that Stevan Little was working on
bootstrapping the Perl 5 implementation of the Perl 6 MetaModel so that it's
implemented in terms of itself.</p>
<p>Rather mindbogglingly, Pugs is now targeting Javascript as well.</p>
<p>The Current Pugs release is 6.2.8</p>
<p><a href='http://planetsix.perl-foundation.org' target='_blank'>planetsix.perl-foundation.org</a></p>
<a name='Creating threads in BEGIN'></a><h2>Creating threads in BEGIN</h2>
<p>Nicholas Clark posted what he described as a 'note to collective self'
wondering about how Perl 6 will cope with people creating threads inside BEGIN
blocks. According to Luke &quot;it won't&quot;. Larry thought that it might be okay to
create threads at CHECK time, so long as any spawned threads didn't do any real
work later than CHECK time.</p>
<p><a href='http://groups.google.com/groups?threadm=20050714153213.GB73297@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<a name='Perl 6 Modules'></a><h2>Perl 6 Modules</h2>
<p>Gav... (I presume the ellipsis is important to someone) wondered what he needed
to do to write Perl 6 modules. Nathan Gray pointed him at the porting howto in
the pugs distribution.</p>
<p><a href='http://svn.openfoundry.org/pugs/docs/other/porting_howto' target='_blank'>svn.openfoundry.org</a></p>
<p><a href='http://groups.google.com/groups?threadm=002a01c58944$c9231c30$0200a8c0@madaboutipv6' target='_blank'>groups.google.com</a></p>
<a name='Is namespace qualification really required?'></a><h2>Is namespace qualification really required?</h2>
<p>Phil Crow came across some weirdness with namespace resolution. It seems that
you have to explicitly qualify function names in signatures. Autrijus agreed
that it was a bug and asked for Phil to write a TODO test. Discussion ensued --
I think it's fixed in SVN now.</p>
<p><a href='http://groups.google.com/groups?threadm=200507151916.j6FJGm18017026@webmail.sunflower.com' target='_blank'>groups.google.com</a></p>
<a name='Parsing perl 6 grammars'></a><h2>Parsing perl 6 grammars</h2>
<p>Nathan Gray wondered about the state of Jeff 'Japhy' Pinyan's effort to
implement a Perl 6 rules parser. Japhy said that it's been on hold for a while,
but that he'd started to work on it again, basing it on his earlier
Regexp::Parser module.</p>
<p><a href='http://groups.google.com/groups?threadm=20050719180105.GA30311@vs2.capwiz.com' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-internals'></a><h1>Meanwhile, in perl6-internals</h1>
<a name='PMC changes?'></a><h2>PMC changes?</h2>
<p>Nicholas Clark wondered if the PMC layout is likely to remain stable, or if
there might be changes in relation to the generational garbage collector. In
particular, he wanted to know if the API would remain stable. Leo thought that
there might be changes in the layout, but the API shouldn't change.</p>
<p><a href='http://groups.google.com/groups?threadm=20050713142025.GR73056@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<a name='ParTcl Accelerator'></a><h2>ParTcl Accelerator</h2>
<p>Will Coleda showed some timings for ParTcl, the Parrot implementation of Tcl
and made a few suggestions about how to get things going faster. Patrick and
Leo mused on the issues involved.</p>
<p><a href='http://groups.google.com/groups?threadm=643ED742-47AA-4D16-8A8A-BB956F020E90@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='Partitioning PMCs'></a><h2>Partitioning PMCs</h2>
<p>Nicholas Clark had some questions about making PMCs and Ponie play well
together, with particular reference to using <code>SvFLAGS()</code>.</p>
<p><a href='http://groups.google.com/groups?threadm=20050713140849.GP73056@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<a name='Embedding/extending interface'></a><h2>Embedding/extending interface</h2>
<p>Nicholas Clark wondered if chromatic was still waiting for confirmation that
his automated embedding tools were the Right Thing. Apparently, chromatic is
waiting for confirmation, but offered to send his existing patch, if only to
force the discussion.</p>
<p><a href='http://groups.google.com/groups?threadm=20050713144138.GT73056@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<a name='Ponie Questions'></a><h2>Ponie Questions</h2>
<p>Nicholas Clark had a bunch of questions about various subsystems, mostly in
relation to Ponie. Leo came good with answers.</p>
<p><a href='http://groups.google.com/groups?threadm=20050713144716.GU73056@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050713143805.GS73056@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050713141314.GQ73056@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<a name='Parrot Project Management'></a><h2>Parrot Project Management</h2>
<p>I'm not sure if Will Coleda's suffering culture shock about the way Parrot
project management is done, or if we're really not doing it right. The first
rule of Parrot/Perl 6 development is that if you really want something then the
only way to guarantee that it gets done is to do it yourself. It's certainly
worked for me over the years.</p>
<p><a href='http://groups.google.com/groups?threadm=cff4c4c41b42a1f39d7d4fe68f914841@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Tcl GC issues... solved'></a><h2>Tcl GC issues... solved</h2>
<p>Matt Diephouse announced that as of r8617 in svn, the longstanding GC bug that
was occasionally tickled by ParTcl has been fixed. There was no rejoicing on
list, but at least one summarizer was really pleased to hear it.</p>
<p><a href='http://groups.google.com/groups?threadm=198c87380507140823527d4165@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='GMC for dummies'></a><h2>GMC for dummies</h2>
<p>Summer of Code intern, Alexandre Buisse, who is working on a new GC system for
Parrot pointed us all at an introduction to the Generational Mark and Compact
scheme that he's working to implement. He and Leo had a discussion about
implications, assumptions and other stuff.</p>
<p>Bob Rogers asked some tricky questions relating to circular structures and
timely destruction. Discussion of this continues.</p>
<p><a href='http://groups.google.com/groups?threadm=42D853A9.8060902@gmail.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://perso.ens-lyon.fr/alexandre.buisse/divers/gmc_for_dummies.pod' target='_blank'>perso.ens-lyon.fr</a></p>
<a name='Register Allocation fun'></a><h2>Register Allocation fun</h2>
<p>There was a flurry of patches from Curtis Rawls who appears to be working on
refactoring and (one hopes) fixing the IMCC register allocator. Way to go
Curtis.</p>
<a name='Meanwhile in perl6-language'></a><h2>Meanwhile in perl6-language</h2>
<a name='MML dispatch'></a><h2>MML dispatch</h2>
<p>The ongoing discussion of the right way to dispatch multimethods is still, um,
going on. Damian and Luke appear to have a fundamental disagreement about
what's the Right Thing. &quot;Manhattan!&quot; &quot;Pure!&quot; &quot;Manhattan!&quot; -- it's not quite
that bad, but positions seem to have been entrenched for a while. Elsewhere in
the thread, Larry mused on which was more general, classes or roles. Thomas
Sandlaß wondered how they stood in relation to types.</p>
<p>Your summarizer wondered how he was ever going to explain all this and punted.</p>
<p><a href='http://groups.google.com/groups?threadm=42D33D33.6090305@conway.org' target='_blank'>groups.google.com</a></p>
<a name='Method calls on $self'></a><h2>Method calls on <code>$self</code></h2>
<p>My eyes, they burn! At this rate I'm simply going to use $?SELF in all my Perl
6 classes. Larry's latest suggestion seems to please even fewer people than
<code>./method</code>, which is really saying something. As someone who's not a fan of
<code>./</code>, I was slightly surprised to find myself agreeing with Autrijus who
reckons you get used to it really quickly.</p>
<p><a href='http://groups.google.com/groups?threadm=20050712105922.GH7720@c4.convolution.nl' target='_blank'>groups.google.com</a></p>
<a name='The Perl 6 Library system'></a><h2>The Perl 6 Library system</h2>
<p>In response to a question from Autrijus about coderefs in <code>@INC</code> or whatever
Perl 6 is going to call it, Larry mused on the possible eventual design of Perl
6's library system. It seemed to me that he was dropping a rather heavy hint to
any interested readers who might like to come up with a first cut of Perl 6's
library system.</p>
<p>Later he did some thinking aloud about treating strings as arrays or vice
versa.</p>
<p><a href='http://groups.google.com/groups?threadm=20050714184914.GB11335@wall.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050713181410.GA5960@wall.org' target='_blank'>groups.google.com</a></p>
<a name='Method Resolution Order'></a><h2>Method Resolution Order</h2>
<p>Stevan &quot;MetaModel&quot; Little cheered Larry's statement that methods, subs,
submethods and &quot;anything in between&quot; all live in the same namespace. If you
want to give two code like things the same name then you have to explicitly
declare them as multi.</p>
<p>Stevan went on to ask a bunch of questions about the semantics of method
resolution so as to get the Perl 6 MetaModel working right. Discussion ensued.</p>
<p><a href='http://groups.google.com/groups?threadm=b61699c72578bbd844606f7cae1399b3@iinteractive.com' target='_blank'>groups.google.com</a></p>
<a name='Type::Class::Haskell does Role'></a><h2>Type::Class::Haskell does Role</h2>
<p>I haven't the faintest idea what Yuval Kogman is talking about. Dammit I need
to learn Haskell now. Luckily Autrijus, Luke, David Formosa and Damian did seem
to understand it. There was ASCII art and everything. Sadly no Unicode art, but
it's only a matter of time.</p>
<p><a href='http://groups.google.com/groups?threadm=20050714233822.GB11028@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='Optimization pipeline'></a><h2>Optimization pipeline</h2>
<p>Yuval Kogman posted an outline of the optimization pipeline idea that he'd
brought up in a hackathon. If confess that it looks rather like something that
got discussed a few months (years?) ago which Chip had shot down rather
convincingly. (I remember this because I was taking pretty much the same
position as Yuval, and I really didn't want to be convinced...)</p>
<p><a href='http://groups.google.com/groups?threadm=20050715000522.GC11028@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='STM semantics, the Transactional role'></a><h2>STM semantics, the Transactional role</h2>
<p>Yuval Kogman discussed some issues with STM (Something Transactional Memory --
I'm hazy on the 'Something' and far to lazy to Google). A short discussion
ensued.</p>
<p><a href='http://groups.google.com/groups?threadm=20050715214414.GF11028@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='More Method Resolution Order Questions'></a><h2>More Method Resolution Order Questions</h2>
<p>Returning from reading up on method resolution orders and class precedence
lists, Stevan Little had a pile of questions and suggestions about Perl 6's
method resolution semantics. He's plumped for using 'C3' as Perl's algorithm of
choice and is implementing it in Perl6::MetaModel until and unless @Larry
decides differently. He's off to a flying start in that the One True Larry
thinks it's a good idea.</p>
<p><a href='http://groups.google.com/groups?threadm=e3d17143db700412d283a61313cca29c@iinteractive.com' target='_blank'>groups.google.com</a></p>
<a name='Accessor only virtual attributes'></a><h2>Accessor only virtual attributes</h2>
<p>Sam Vilain wondered what would happen if he made an 'accessor' for an attribute
that didn't really exist. He wanted to be able to disguise accessor methods as
attributes within class and subclass scope (at least, I think that's what he
wants). Larry seemed to think he was barking up the wrong tree -- class
attributes are only likely to be accessible using the <code>$.whatever</code> form within
their declaring class and not any subclasses. Larry's 'got some driving to do'
so expect some more thoughts about this in the next summary.</p>
<p><a href='http://groups.google.com/groups?threadm=42DB234C.6050106@vilain.net' target='_blank'>groups.google.com</a></p>
<a name='Strange interaction between Pairs and named binding'></a><h2>Strange interaction between Pairs and named binding</h2>
<p>Autrijus noted that, although:</p>
<pre>    for [1..10].pairs -&gt; Pair $x { say $x.value }</pre>
<p>works,</p>
<pre>    for [1..10].pairs -&gt;      $x { say $x.value }</pre>
<p>doesn't. Which is somewhat counter intuitive. The problem is, the pair is being
treated as a named argument specifier in the second case. After discussion,
Autrijus suggested that the best thing might be to specify that the 'Bare' code
object (which includes pointy and non-pointy blocks) have 'Any' as a default
parameter type -- essentially turning off the special behaviour of Pairs when
calling named blocks. I'm all for this myself, but Larry has yet to speak.</p>
<p><a href='http://groups.google.com/groups?threadm=20050718124224.GA84092@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='How do subroutines check types?'></a><h2>How do subroutines check types?</h2>
<p>Ingo Blechschmidt had some questions about specifying types in subroutine
definitions. Specifically he wanted to be able to specify that a sub only take
instances of a class Foo and its subclasses but not the class Foo (or its
subclasses) itself. Thomas Sandlaß thought that what Ingo wanted is the default
behaviour and you actually have to do some work to get it to behave any other
way.</p>
<p><a href='http://groups.google.com/groups?threadm=loom.20050719T143727-491@post.gmane.org' target='_blank'>groups.google.com</a></p>
<a name='Referring to package variables in the default namespace'></a><h2>Referring to package variables in the default namespace</h2>
<p>Matthew Hodgson asked for some clarification of how the default package
namespace works. Apparently pugs and Synopsis 10 are slightly at odds. Larry
had some answers. Matthew probably has some more questions.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.61.0507191912180.11917@phoenix.arasphere.net' target='_blank'>groups.google.com</a></p>
<a name='Crikey! That went quickly'></a><h1>Crikey! That went quickly</h1>
<p>Or, for the traditionalists among you</p>
<a name='Acknowledgements, adverts, apologies and alliteration'></a><h1>Acknowledgements, adverts, apologies and alliteration</h1>
<a name='Hunting the perfect archive'></a><h2>Hunting the perfect archive</h2>
<p>I'm still on the lookout for a replacement for Google groups for my message
links. What I need is an archive that's up to date with the lists, and has URLs
that can easily be derived from Message-IDs. Bonus points for good thread
handling.</p>
<a name='Help Chip'></a><h2>Help Chip</h2>
<p><a href='http://geeksunite.org/,' target='_blank'>geeksunite.org</a> tell all your friends, this cannot stand.</p>
<a name='The usual Coda'></a><h2>The usual Coda</h2>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Check out my website, now running on a different blog engine and adorned with
some new articles. Will wonders never cease?</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<p>Vaguely pretty photos by me can be found at:</p>
<p><a href='http://www.flickr.com/photos/pdcawley' target='_blank'>www.flickr.com</a></p>
</div>
